package com.mike.dao;

import com.mike.pojo.User;
import org.apache.ibatis.annotations.Param;


public interface UserMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(User record);

    int insertSelective(User record);

    User selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(User record);

    int updateByPrimaryKey(User record);



    //todo 自定义方法
    //检查用户名
    int checkUsername(String username);

    //验证email
    int checkEmail(String str);

     /*
    * 验证用户名及密码登录
    * @param username
    * @param password
    * @return
    * */
     User login(@Param("username") String username, @Param("password") String password);


//====================================
    //注册
    User register(User u );


    /**
     * 忘记密码，根据用户名查询提示问题
     * @username
     */
    String selectQuestionByUsername(String username);


    /**
     * 忘记密码，根据提示问题，验证答案
     * @username
     * @paramquestion
     * return
     */
    int checkAnswer(@Param("username") String username,
                    @Param("question") String question,
                    @Param("answer") String answer);


    /**
     * 验证预设问题答案后，对密码进行修改
     * param username
     * param passwordNew
     * return
     */
    int updatePasswordByUsername(String username,String passwordNew);

    /**
     * 登录后修改密码，对原密码进行验证
     * param password
     * param userId
     * return
     */
    int checkPassword(@Param("password")String password,@Param("userId")Integer userId);

    /**
     * 修改用户信息时，校验email是否已经被其他用户注册
     */
    int checkEmailByUserId(@Param("email") String email, @Param("userId")Integer userId);


    //User selectByPrimaryKey(Integer id);
}